define(['./_module'], function (controllers) {
	'use strict';
	
	controllers.controller('MatriculaController', 
			['$scope', 
			 'TurmaService', 
			 '$sce',
			 '$alert',
			 'AlunoService',
			 '$routeParams',
			 function ($scope, turmaService, $sce, $alert, alunoService, $routeParams) {
			
		$scope.matricula = {};
		$scope.matricula.valor = 0;
		
		$scope.aluno = {};
		$scope.turma = {};
		
		turmaService.findAll().then(function(result) {
			$scope.turmas = result.data;
		});
		
		alunoService.findAll().then(function(result) {
			$scope.alunos = result.data;
		});
	        
        $scope.saveMatricula = function() {
        	turmaService.matricula($scope.matricula).success(function(data) {
				var mensagem = "Aluno(a) '" + data.aluno.nome  + "' matriculado(a) na turma " + data.turma.descricao ;
				$alert({title: '', content: $sce.trustAsHtml('<p>' + mensagem + '</p>'), placement: 'top', type: 'success', show: true});
			}).error(function(data, status) {
				console.log("Ocorreu erro ao efetuar a operação com a turma.");
				$alert({title: 'Erro', content: $sce.trustAsHtml('<p>Ocorreu erro ao efetuar a operação.</p>'), placement: 'top', type: 'danger', show: true});
			});
    		$scope.matricula = {};
        };
        
        $scope.$watch(function(){return $scope.matricula;}, function (newVal) {
            if (!angular.isDefined($scope.matricula.turma)) return;
            $scope.atualizarValor();
        }, true);
        
        $scope.atualizarValor = function() {
        	$scope.matricula.valor = 0;
        	$scope.matricula.valor += $scope.matricula.turma.disciplina.valor;
        	if ($scope.matricula.aulaIndividual) $scope.matricula.valor += 30;
        	if ($scope.matricula.aulaDomicilio) $scope.matricula.valor += 50;
        };
          
    }]);
});